/*
 * @Author: HuChen
 * @Date: 2023-08-22 10:57:09
 * @LastEditTime: 2023-08-22 11:07:23
 * @Description: ts 除了js 五种基本数据类型之外还包括了 any , 数组, 元祖 , 枚举 ,void , never 
 */

// 1. any 类型  当ts 使用了any 相当于是 js

/* let x : any = 123 
x = '123'
x = true
x.ifItExists() // 调用一个不存在的属性
x.toFixed() // 调用一个不存在的函数 */

// 2. null 和 undefine 类型

/* let x : number
x = 123
x = null
x = undefined */

 // 3. never 类型

/* let x: never;
let y: number;

// 编译错误，数字类型不能转为 never 类型
x = 123;

// 运行正确，never 类型可以赋值给 never类型
x = (()=>{ throw new Error('exception')})();

// 运行正确，never 类型可以赋值给 数字类型
y = (()=>{ throw new Error('exception')})();

// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {
    throw new Error(message);
}

// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {
    while (true) {}
} */
